Module 2:認識 GitHub、建立 Repository 與 SSH Key
Git 可以單獨在你的電腦上運作;GitHub 則是保存 Git 儲存庫、進行程式碼審查與團隊合作的線上平台。
Git 和 GitHub 不一樣
| Git | GitHub |
|---|---|
| 安裝在電腦上的版本控制工具 | 提供 Git 儲存庫託管的網站與服務 |
| 沒有網路也能 commit | push、pull 與線上協作需要網路 |
| 管理檔案版本與分支 | 提供 Pull Request、Issue、Actions 等功能 |
Step 1:註冊 GitHub 帳號
- 前往 GitHub。
- 選擇 Sign up。
- 填寫 Email、密碼與使用者名稱。
- 完成 Email 驗證。
建議同時開啟兩步驟驗證(2FA),避免帳號只靠一組密碼保護。
Step 2:建立第一個 Repository
- 登入後開啟 New repository。
- Repository name 輸入
git-practice-remote。 - 第一次練習可選擇 Private。
- 開啟 Add README。
- 選擇 Create repository。
Repository 建立後,先認識幾個常見區域:
| 區域 | 用途 |
|---|---|
| Code | 查看檔案、commit 與分支 |
| Issues | 記錄需求、問題與討論 |
| Pull requests | 提出、審查與合併修改 |
| Actions | 執行自動測試或部署流程 |
| Settings | 管理權限、分支規則與其他設定 |
GitHub 介面會持續更新。如果按鈕位置與本文略有不同,找相同名稱的功能即可。
Clone、Fork 和 Download ZIP 的差別
| 操作 | 會保留 Git 歷史嗎? | 常見用途 |
|---|---|---|
| Clone | 會 | 在本機持續開發與同步 |
| Fork | 會,並在自己的 GitHub 建立副本 | 參與沒有直接寫入權限的專案 |
| Download ZIP | 不會 | 只想取得目前檔案,不打算同步 |
Step 3:建立 SSH Key
SSH Key 由一對金鑰組成:
- 私鑰留在自己的電腦,絕對不能傳給別人。
- 公鑰可以登錄到 GitHub。
先查看電腦中是否已有金鑰:
ls -al ~/.ssh
如果沒有 id_ed25519 與 id_ed25519.pub,建立新金鑰:
ssh-keygen -t ed25519 -C "[email protected]"
操作時:
Enter file in which to save the key:沒有舊金鑰時可直接按 Enter。Enter passphrase:建議設定一組金鑰密碼。- 再輸入一次相同密碼。
不要覆蓋舊金鑰
如果終端機提示指定檔案已存在,先回答 n,再參考 GitHub 官方說明建立自訂名稱的金鑰。
Step 4:把私鑰加入 ssh-agent
macOS / Linux / Git Bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
macOS 若希望把密碼保存在鑰匙圈,可依 GitHub 官方說明使用:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Step 5:把公鑰加入 GitHub
先顯示公鑰:
cat ~/.ssh/id_ed25519.pub
複製從 ssh-ed25519 開始的整行內容,接著:
- GitHub 右上角頭像 → Settings。
- 選擇 SSH and GPG keys。
- 選擇 New SSH key。
- Title 填一個能辨認電腦的名稱,例如
home-laptop。 - Key 貼上剛才的公鑰,完成新增。
Step 6:測試 SSH 連線
ssh -T [email protected]
第一次連線可能詢問是否信任 GitHub 主機,確認畫面顯示的主機是 github.com 後輸入 yes。成功時會看到包含你 GitHub 使用者名稱的驗證成功訊息。
Step 7:用 SSH Clone Repository
在 GitHub repository 頁面選擇 Code → Local → SSH,複製類似以下的網址:
[email protected]:YOUR_ACCOUNT/git-practice-remote.git
回到終端機:
cd ..
git clone [email protected]:YOUR_ACCOUNT/git-practice-remote.git
cd git-practice-remote
git remote -v
git status
請把 YOUR_ACCOUNT 換成自己的 GitHub 使用者名稱。git remote -v 顯示的 origin,就是這個本地儲存庫預設連線的遠端位置。
安全檢查
- 可以分享:
id_ed25519.pub公鑰內容。 - 不可分享:
id_ed25519私鑰內容。 - 不要把密碼、API Key、
.env檔 commit 到 Git。 - 不確定 SSH 指令或主機指紋時,先停下來確認,不要直接接受。